export class QuickSort { array: number[]; SetValue(arr: number[]) { this.array = arr; } Partition(left: number, right: number, pivot: number) { while (left <= right) { //left small right big if (this.array[left] < this.array[pivot] && this.array[right] > this.array[pivot]) { left++; right--; } //left small else if (this.array[left] < this.array[pivot]) { left++ } //right big else if (this.array[right] > this.array[pivot]) { right--; } //left big and right small else if (this.array[left] > this.array[pivot] && this.array[right] < this.array[pivot]) { //alert("Check"); let temp; temp = this.array[left]; this.array[left] = this.array[right]; this.array[right] = temp; } } let temp; temp = this.array[pivot] this.array[pivot] = this.array[left] this.array[left] = temp return left; } Sort(left, right) { if (right - left <= 0) {} else { var part = this.Partition(left, right - 1, right); this.Sort(left, part - 1); this.Sort(part + 1, right); } return this.array; } }